package visualcbir.gui;

import visualcbir.format.DlgFormat;
import visualcbir.format.FormatEps;
import visualcbir.format.IFormat;
import java.awt.Dimension;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import visualcbir.util.GeneralUtils;
import visualcbir.DlgAboutBox;
import visualcbir.PnlView;
import visualcbir.Principal;
import visualcbir.format.FormatPng;
import visualcbir.util.ComponentUtils;

/**
 *
 * @author sheila
 */
public class MenuBarSelf extends JMenuBar implements ActionListener{
    JMenu bmarchivo = new JMenu("File");
        JMenuItem bmarchivosalir = new JMenuItem("Exit Program");
    JMenu bmFormat = new JMenu("Format");
        JMenuItem bmFormatEps = new JMenuItem("Eps");
        JMenuItem bmFormatPng = new JMenuItem("Png");
    JMenu bmHelp = new JMenu("Help");
        JMenuItem bmAbout = new JMenuItem("About");
        
    public MenuBarSelf(){
        super();
        initBar();
    }

    private void initBar(){
        bmarchivo.add(bmarchivosalir);
        bmHelp.add(bmAbout);

        bmFormat.add(bmFormatEps);
        bmFormat.add(bmFormatPng);

        //************* Listener ***********************
        bmarchivosalir.addActionListener(this);
        bmAbout.addActionListener(this);
        bmFormatEps.addActionListener(this);
        bmFormatPng.addActionListener(this);

        this.add(bmarchivo);
        this.add(bmFormat);
        this.add(bmHelp);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if(e.getSource().equals(bmAbout))
            bmOpenAbout();
        else if(e.getSource().equals(bmFormatEps)){
            bmFormat("Eps", new FormatEps());
        }
        else if(e.getSource().equals(bmFormatPng)){
            bmFormat("Png", new FormatPng());
        }
    }
    public void bmOpenAbout() {
      DlgAboutBox dlg = new DlgAboutBox();      
      ComponentUtils.setLocationAtCenter(dlg, Principal.getInstance());
//      Dimension dlgSize = dlg.getPreferredSize();
//      Dimension frmSize = getSize();
//      Point loc = getLocation();
      //dlg.setLocationRelativeTo(Principal.getInstance());
      //dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);     
      //dlg.pack();
      dlg.setModal(true);
      dlg.setVisible(true);
    }
    public void bmFormat(String nomeFormato, IFormat formateer){
        try{
            DlgFormat dlgFormat = new DlgFormat(Principal.getInstance(),true,nomeFormato);
            ComponentUtils.setLocationAtCenter(dlgFormat, Principal.getInstance());
            dlgFormat.setVisible(true);            
            formateer.printFormat(dlgFormat.getFile(),  ((PnlView)Principal.getInstance().getCurrentComponent()));
            GeneralUtils.showDlgInformation(this, "Arquivo salvo com sucesso");
            }catch(Exception exx){
                System.err.println("Erro saving this format");
            }
    }
}
